home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / front.lha / front / m2c / Checks.c < prev    next >
C/C++ Source or Header  |  1992-08-18  |  2KB  |  118 lines

  1. #include "SYSTEM_.h"
  2.  
  3. #ifndef DEFINITION_IO
  4. #include "IO.h"
  5. #endif
  6.  
  7. #ifndef DEFINITION_Strings
  8. #include "Strings.h"
  9. #endif
  10.  
  11. #ifndef DEFINITION_SysError
  12. #include "SysError.h"
  13. #endif
  14.  
  15. #ifndef DEFINITION_Errors
  16. #include "Errors.h"
  17. #endif
  18.  
  19. #ifndef DEFINITION_Checks
  20. #include "Checks.h"
  21. #endif
  22.  
  23.  
  24. static CHAR DevNull [] = "/dev/null";
  25.  
  26.  
  27. void Checks_ErrorCheck
  28. # ifdef __STDC__
  29. (CHAR a[], LONGCARD O_1, INTEGER n)
  30. # else
  31. (a, O_1, n)
  32. CHAR a[];
  33. LONGCARD O_1;
  34. INTEGER n;
  35. # endif
  36. {
  37.   Strings_tString s;
  38.   OPEN_ARRAY_LOCALS
  39.  
  40.   ALLOC_OPEN_ARRAYS(O_1 * sizeof(CHAR), 1)
  41.   COPY_OPEN_ARRAY(a, O_1, CHAR)
  42.   if (SysError_StatIsBad(n)) {
  43.     Strings_ArrayToString(a, O_1, &s);
  44.     SysError_SysErrorMessageI(n, (LONGCARD)Errors_eFatal, (LONGCARD)Errors_eString, ADR(s));
  45.   }
  46.   FREE_OPEN_ARRAYS
  47. }
  48.  
  49. void Checks_CheckReadOpen
  50. # ifdef __STDC__
  51. (IO_tFile *file, CHAR a[], LONGCARD O_2)
  52. # else
  53. (file, a, O_2)
  54. IO_tFile *file;
  55. CHAR a[];
  56. LONGCARD O_2;
  57. # endif
  58. {
  59.   Strings_tString s;
  60.   OPEN_ARRAY_LOCALS
  61.  
  62.   ALLOC_OPEN_ARRAYS(O_2 * sizeof(CHAR), 1)
  63.   COPY_OPEN_ARRAY(a, O_2, CHAR)
  64.   if (SysError_StatIsBad(*file)) {
  65.     Strings_ArrayToString(a, O_2, &s);
  66.     SysError_SysErrorMessageI(*file, (LONGCARD)Errors_eError, (LONGCARD)Errors_eString, ADR(s));
  67.     *file = IO_ReadOpen(DevNull, 9L);
  68.     if (SysError_StatIsBad(*file)) {
  69.       Strings_ArrayToString(DevNull, 9L, &s);
  70.       SysError_SysErrorMessageI(*file, (LONGCARD)Errors_eFatal, (LONGCARD)Errors_eString, ADR(s));
  71.     }
  72.   }
  73.   FREE_OPEN_ARRAYS
  74. }
  75.  
  76. void Checks_CheckWriteOpen
  77. # ifdef __STDC__
  78. (IO_tFile *file, CHAR a[], LONGCARD O_3)
  79. # else
  80. (file, a, O_3)
  81. IO_tFile *file;
  82. CHAR a[];
  83. LONGCARD O_3;
  84. # endif
  85. {
  86.   Strings_tString s;
  87.   OPEN_ARRAY_LOCALS
  88.  
  89.   ALLOC_OPEN_ARRAYS(O_3 * sizeof(CHAR), 1)
  90.   COPY_OPEN_ARRAY(a, O_3, CHAR)
  91.   if (SysError_StatIsBad(*file)) {
  92.     Strings_ArrayToString(a, O_3, &s);
  93.     SysError_SysErrorMessageI(*file, (LONGCARD)Errors_eError, (LONGCARD)Errors_eString, ADR(s));
  94.     *file = IO_WriteOpen(DevNull, 9L);
  95.     if (SysError_StatIsBad(*file)) {
  96.       Strings_ArrayToString(DevNull, 9L, &s);
  97.       SysError_SysErrorMessageI(*file, (LONGCARD)Errors_eFatal, (LONGCARD)Errors_eString, ADR(s));
  98.     }
  99.   }
  100.   FREE_OPEN_ARRAYS
  101. }
  102.  
  103. void BEGIN_Checks()
  104. {
  105.   static BOOLEAN has_been_called = FALSE;
  106.  
  107.   if (!has_been_called) {
  108.     has_been_called = TRUE;
  109.  
  110.     BEGIN_IO();
  111.     BEGIN_IO();
  112.     BEGIN_Strings();
  113.     BEGIN_SysError();
  114.     BEGIN_Errors();
  115.  
  116.   }
  117. }
  118.